/** 为空的类型 */
export type DATA_EMPTY = null | undefined

/** getBoundingClientRect 返回类型 */
export interface DOMRect {
    width: number
    height: number
    left: number
    right: number
    top: number
    bottom: number
    x: number
    y: number
}

/** 鼠标/触摸事件的当前x/y坐标 */
export interface ClientXY {
    x: number
    y: number
}

/** 对象统一类型 */
export type ObjectType = Record<string, any>

/** 添加水波纹方法-回调方法参数类型 */
export interface CreateRippleCbParams {
    x: number
    y: number
    centerX: number
    centerY: number
    size: number
    target: HTMLElement
}

/** 获取某个元素在父节点内可移动的最大水平/垂直距离 */
export interface ElementBoundary {
    maxX: number
    maxY: number
    left: number
    top: number
}

/** 滚动条滚动指定位置 */
export interface ScrollToOptions {
    top?: number
    left?: number
    duration?: number
    animation?: (_progress: number) => number
}

/** 时间单位 */
export interface TimeUnit {
    h?: string
    m?: string
    s?: string
}

/** 日期单位 */
export interface DateUnit {
    y?: string
    m?: string
    d?: string
}

/** 获取倒计时函数返回值 */
export interface CountDownTimeType {
    d: number
    h: string
    m: string
    s: string
}
